package com.lanswon.qzsmk.dao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.lanswon.qzsmk.model.Cert;
import com.lanswon.qzsmk.vo.QueryChangeCardVo;

public interface CertMapper {
	/**
	 * 保存
	 * @param record
	 * @return
	 */
    int insert(Cert record);
    
    /**
     * 批量插入凭证
     * @param certs
     * @return
     */
    int batchInsert(@Param("list")List<Cert> certs);

    /**
     * 查询凭证
     * @param controlId 控制表的id
     * @return
     */
    List<Cert> queryCertByControlId(Integer controlId);
    
    /**
     * 通过controlId和certType查询凭证
     * @param QueryChangeCardVo 
     * @return
     */
    Cert queryCertByControlIdAndCertType(QueryChangeCardVo qcv);
    
    /**
     * 更新
     * @param cert
     */
    void update(Cert cert);
    
    /**
     * 批量更新
     * @param cert
     */
    void batchUpdate(@Param("list")List<Cert> certs);
    
    /**
     * 通过市民卡号和凭证类型查询
     * @param citizenCardNo
     * @param CertType
     * @return
     */
    Cert queryCertByCitizenCardNoAndCertType(@Param("citizenCardNo") String citizenCardNo,@Param("certType")String certType );
    
    /**
     * 根据凭证编号查询凭证信息
     * @param certNo
     * @return
     */
    Cert queryCertByCertNo(String certNo);
    
    /**
     * 查询是否已经挂失
     * @param certType
     * @param paperType
     * @param paperNo
     * @param cardPcode
     * @param status
     * @return
     */
    int checkIsLoss(String certType,String citizenCardNo);
    
    /**
     * 查询上 一条凭证
     * @param now
     * @return
     */
    Cert queryCertByCrtDate(String now);

    /**
     * 根据市民卡号查询上一条凭证
     * @param citizenCardNo
     * @return
     */
    Cert queryPreviousCertByCitizenCardNo(String citizenCardNo);

    /**
     * 查询
     * @param cardControlId
     * @param paperType
     * @param paperNo
     * @param certType
     * @param cardpCode
     * @return
     */
    Cert queryCertByPersonal(@Param("cardControlId")Integer cardControlId,@Param("paperType")String paperType,@Param("paperNo")String paperNo,@Param("certType")String certType,@Param("cardpCode")String cardpCode);
    
}